/*
UFPB/CCT/DSC - Introducao a Programacao/2001.1
Este programa calcula a media aritmetica entre
dois valores fornecidos pelo usuario
Autor(a): Livia M. R. Sampaio
*/
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void main() {
/*declaracao de variaveis*/
float mediaAritmetica;
float valor1, valor2;
clrscr(); /*comando para limpar a tela*/
/*entrada de dados*/
printf("Entre com dois valores para calcular a media aritmetica\n(separe os valores com espaco em branco) => ");
scanf("%e%e", &valor1, &valor2);
/*calculando a media aritmetica*/
mediaAritmetica = (valor1 + valor2) / 2.0f;
/*saida de dados*/
printf("A media aritmetica entre %f e %f eh: %f\n", valor1,
valor2, mediaAritmetica);
}
scanf("%e%e", &valor1, &valor2);
tem-se o
uso da função scanf() para
entrada de dados formatada.
Int |
scanf |
(const char* formato, |
...) |
Valor de retorno |
Nome da função |
Cadeia de formato |
Lista de argumentos |
O valor de retorno será EOF se ocorrer um fim de arquivo ou um erro, caso contrário, este valor representará o número de itens convertidos e atribuídos.
A cadeia de formato pode conter: espaços (caractere de espaço em branco, tabulação ou nova linha); caracteres comuns; especificações de conversão.
Uma especificação
de conversão determina que tipo de dado deve ser lido em seguida (formato
de conversão do próximo valor de entrada). Forma geral: %
caractere_de_conversão.<
/font>
Os
especificadores de conversão coincidem, em ordem, com os argumentos que formam
a lista de argumentos.
Alguns
caracteres de conversão válidos para o scanf():
Caractere |
Dado de Entrada |
Tipo de Argumento |
D |
inteiro decimal |
int* |
O |
inteiro octal |
int* |
X |
inteiro hexadecimal |
int* |
C |
caracteres |
char*, não inclui '\0' |
S |
cadeia de caracteres sem espaço em branco |
char*, inclui '\0' |
e, f e g |
número em ponto flutuante |
float* |
Um espaço
na cadeia de formato faz com que scanf() leia e descarte um ou mais caracteres em branco da cadeia de entrada.
Um
caractere comum faz com que scanf() leia e descarte um caractere igual. Por exemplo: "%d,%d" faz
com que scanf() leia um inteiro e descar te uma vírgula, só
então, leia outro inteiro.
Todas as
variáveis usadas para receber valores através de scanf() devem ser passadas através de seus
endereços.
·
A função scanf() deriva de:
int fscanf(FILE* fluxo, const char* formato, ...)
onde,
fluxo = entrada padrão
(stdin)
/*
UFPB/CCT/DSC/Introducao a Programacao - 2001.1
Este programa deve ler caracteres da entrada padrao e
mostra-los em maiusculo
Autor(a): Livia Maria Rodrigues Sampaio
*/
#include <stdio.h>
#include <conio.h>
#define ENTER '\n'
void main() {
/*declaracao de variaveis*/
char caractere;
const char prompt[] = "\nDigite a linha de texto a ser processada, seguida de : \n";
/*interface com o usuario para entrada de dados*/
printf("%s", prompt);
/*processamento da linha de texto informada*/
while ((caractere = getchar()) != ENTER) {
if (islower(caractere))
caractere = toupper(caractere);
putchar(caractere);
}
}
·
Percebemos o
uso de duas funções para entrada/saída de caracteres.
o
A função getchar() espera até que uma tecla seja pressionada e
retorna o seu valor; a tecla pressionada é também mostrada automaticamente na
saída padrão.
o
A função putchar() escreve seu argumento caractere na saída
padrão a partir da posição atual do cursor.
·
Protótipos para
getchar() e putchar():
Int |
getchar |
(void) |
Valor de retorno |
Nome da função |
Argumento |
int |
putchar |
(int c) |
Valor de retorno |
Nome da função |
Argumento |
·
A função getchar() retorna um inteiro, mas é mostrado o
caractere corresponde a este número inteiro.
·
A função putchar recebe como argumento um caractere.
o
Embora putchar seja declarada como usando um parâmetro
inteiro, o que é realmente escrito na saída padrão é o caractere correspondente
ao número inteiro.
·
A função putchar retorna o caractere escrito na saída padrão,
ou EOF, se ocorrer um erro.
·
Alternativas
(mais comuns) para a função getchar():
int getch(void)
int getche(void)
·
A função getch() espera até que uma tecla seja pressionada e
retorna, imediatamente; o valor da tecla não é mostrado na saída padrão.
·
A função getche() é semelhante a getch(), sendo que, o valor da tecla capturado é
mostrado na saída padrão.
·
As funções gets() e puts(), são usadas para ler e mostrar cadeias de caracteres - strings - na
saída padrão.
o
A função gets() lê uma string a partir do teclado e coloca
esta string no endereço apontado por seu argumento;
o
A função retorna
quando for pressionada a tecla ENTER; no final da string lida com gets() é colocado um terminador nulo - '/0' -
o
Protótipo para gets():
char* gets(char* str)
onde,
str
é a cadeia de caracteres que conterá a string fornecida pelo usuário.
o
Exemplo de uso:
o
o . . .
o char nome[50];
o . . .
o printf("\nInforme o nome do aluno:");
o gets(nome);
o . . .
o
A função puts() escreve seu argumento string na saída
padrão, seguido de uma nova linha.
o
Protótipo para puts():
int puts(char* str)
onde,
str
é a cadeia de caracteres que será mostrada.
o
Vale salientar
que puts() escreve, apenas strings na saída padrão;
além disso não pode fazer conversões de formato. Portanto, é bem menos
"robusta" do que a função printf(), já discutida.
§
Freqüentemente
utilizada quando é importante ter um código altamente otimizado.
o
A função puts() retorna EOF se ocorrer um erro, caso
contrário, esta função retorna um valor diferente de 0 (zero)
o
Exemplo de uso:
o
o . . .
o char msg[] = "Bom dia!!";
o . . .
o puts(msg);
o . . .